This invention relates to a computer system suitable for debugging work making use of a log in which a series of events that have occurred as a result of the execution of the target program has been recorded (traced).
When a programmer does the work of correcting errors (debugging) in a program, a debugger is used for aiding the work. According to the instructions from the debugging person, the debugger activates the target program and controls the execution of the program. In the course of debugging, it can display various pieces of information useful for debugging work.
There are several known approaches in debugging. Recently, operation logs have been used more often in checking the operation of the program or in debugging work. For instance, a log-based debugging approach has been popularized. In this approach, a history of issued system calls is recorded with an operating system (OS), a history of memory access is recorded by hardware or with an emulator, and a set of these pieces of event information (log), is displayed using a dedicated viewer. This display is a help to debugging work.
Log-based debugging may be done by not only the approach of examining one log in detail to pinpoint the cause of the bug but also the approach of comparing the log obtained in the proper operation with a log obtained in an abnormal operation, searching for the parts where they differ from each other, and examining the different parts intensively to pinpoint the cause of the bug.
In debugging on the basis of such log comparison, when an unsuitable log is selected and a comparison is made, too many different parts are found, expanding the scope of examination, which decreases the debugging efficiency seriously. To avoid this problem, the debugging person selects logs that behave as similarly as possible and uses them in comparison.
Normally, similar logs should be selected, taking into account the meaning of the operation of the program. The conventional approaches are to simply compare the structure of one log with that of another and select the most similar one. The log with the number of repetitive loops in comparison being the closest to that of the proper log may be selected, with the result that debugging is not necessarily efficient.